#ifndef SY_EVENT_H_
#define SY_EVENT_H_

#include <stdlib.h>
#include <stddef.h>
#include <stdbool.h>

#ifdef __cplusplus
# define SY_CPP(x) x
# if __cplusplus >= 201103L
#  define SY_THROW noexcept
# else
#  define SY_THROW throw ()
# endif
#else
# define SY_CPP(x)
# define SY_THROW
#endif

SY_CPP(extern "C" {)

/* SY_INLINE is used for functions in header files */
#if __STDC_VERSION__ >= 199901L || __GNUC__ >= 3
# define SY_INLINE static inline
#else
# define SY_INLINE static
#endif

#ifdef SY_API_STATIC
# define SY_API_DECL static
#else
# define SY_API_DECL extern
#endif

typedef enum SY_EVENT_RET {
    SY_EVENT_OK = 0,
    SY_EVENT_UNERROR,
    SY_EVENT_INVALID,
    SY_EVENT_NULL
}SY_EVENT_RET;


SY_CPP(})

#endif  /* SY_EVENT_H_ */
